ARM: GICv3: forward pending LPIs to guests
authorAndre Przywara <andre.przywara@arm.com>
Mon, 5 Sep 2016 12:46:37 +0000 (13:46 +0100)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 14 Jun 2017 18:38:37 +0000 (11:38 -0700)
commitf98d6a0862f626ac885f53dc35e39db0e84ce680
tree9a0be402ba11b8af0bfc17699d3dffe91118f6e0
parent41aca705eda86f0c712f4ddc48833e4da16ff33e
ARM: GICv3: forward pending LPIs to guests

Upon receiving an LPI on the host, we need to find the right VCPU and
virtual IRQ number to get this IRQ injected.
Iterate our two-level LPI table to find the domain ID and the virtual
LPI number quickly when the host takes an LPI. We then look up the
right VCPU in the struct pending_irq.
We use the existing injection function to let the GIC emulation deal
with this interrupt.
This introduces a do_LPI() as a hardware gic_ops.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Julien Grall <julien.grall@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/gic-v2.c
xen/arch/arm/gic-v3-lpi.c
xen/arch/arm/gic-v3.c
xen/arch/arm/gic.c
xen/include/asm-arm/domain.h
xen/include/asm-arm/gic.h
xen/include/asm-arm/gic_v3_its.h